本发明提供一种三维建模装置及方法。图像获取部(11)获取通过从不同角度多次拍摄被摄体而得到的多个图像组。三维模型生成部(12)基于获取到的多个图像组中的每一个图像组,生成被摄体的多个三维模型。三维模型选择部(13)选择被合成三维模型和合成三维模型。特征点提取部(14)从被合成三维模型和合成三维模型中提取多个第1特征点和第2特征点。特征点选择部(15)从提取出的多个第1特征点和第2特征点中,选择与立体照相机1之间的距离近的特征点。坐标变换参数获取部(16)获取坐标变换参数。坐标变换部(17)将合成三维模型的坐标变换成被合成三维模型的坐标系的坐标。三维模型合成部(18)将合成三维模型与被合成三维模型进行合成。
1.一种三维建模装置,其具备:图像获取单元,其获取由立体照相机拍摄到的多个图像组;三维模型生成单元,其基于获取到的所述多个图像组中的每一个图像组,生成被摄体的多个三维模型;三维模型选择单元,其从生成的所述多个三维模型中选择被合成三维模型和与该被合成三维模型进行合成的合成三维模型;特征点提取单元,其从选择出的所述被合成三维模型中提取多个第1特征点,并且从选择出的所述合成三维模型中提取多个第2特征点;特征点选择单元,其基于与所述立体照相机之间的距离,将提取出的所述多个第1特征点和第2特征点聚类成2个聚类群,并选择属于与所述立体照相机之间的距离近的一个聚类群的多个第1特征点和多个第2特征点;变换参数获取单元,其从选择出的所述多个第1特征点之中选择3个第1特征点,从选择出的所述多个第2特征点之中选择3个第2特征点,并获取使选择出的该3个第2特征点的坐标与选择出的该3个第1特征点的坐标相一致的变换参数,其中,该3个第2特征点构成与以选择出的该3个第1特征点为3个顶点的三角形全等的三角形的3个顶点;坐标变换单元,其利用获取到的所述变换参数,将所述合成三维模型的坐标变换成所述被合成三维模型的坐标系的坐标;和合成单元,其将坐标变换后的所述合成三维模型与所述被合成三维模型进行合成。
2.根据权利要求1所述的三维建模装置,其中,所述特征点选择单元选择对提取出的所述多个第1特征点和第2特征点应用基于规定评价式的鲁棒推定法而推定出的特征点,其中,与所述立体照相机之间的距离越近,该规定评价式表示越高的评价值。
3.一种三维建模装置,其具备:图像获取单元,其获取通过使照相机移动而在不同位置处拍摄被摄体从而得到的第1图像和第2图像;特征点提取单元,其从所述第1图像上提取多个第1特征点,并且提取所述第2图像上的与提取出的多个第1特征点对应的多个第2特征点;第1获取单元,其基于提取出的所述第1特征点和第2特征点,获取表示拍摄所述第1图像时与拍摄所述第2图像时的照相机的位置关系的变换参数;特征点选择单元,其根据基于所述变换参数而获取的与所述照相机之间的距离,选择在提取出的所述第1特征点及与该第1特征点对应的第2特征点之中的、与拍摄时的所述照相机之间的距离近的第1特征点和第2特征点的组合;第2获取单元,其基于选择出的所述第1特征点和第2特征点的组合,重新获取表示拍摄所述第1图像时和拍摄所述第2图像时的所述照相机的位置关系的变换参数;三维信息获取单元,其基于重新获取到的所述变换参数,获取所述特征点提取单元提取出的多个第1特征点及第2特征点的三维信息;和三维模型创建单元,其基于获取到的所述多个第1特征点及第2特征点的三维信息创建三维模型。
4.一种三维建模方法,其包括下述步骤:获取由立体照相机拍摄到的多个图像组;基于获取到的所述多个图像组中的每一个图像组,生成被摄体的多个三维模型;从生成的所述多个三维模型中选择被合成三维模型和与该被合成三维模型进行合成的合成三维模型;从选择出的所述被合成三维模型中提取多个第1特征点,并且从选择出的所述合成三维模型中提取多个第2特征点;基于与所述立体照相机之间的距离,将提取出的所述多个第1特征点和第2特征点聚类成2个聚类群,并选择属于与所述立体照相机之间的距离近的一个聚类群的多个第1特征点和多个第2特征点;从选择出的所述多个第1特征点之中选择3个第1特征点,从选择出的所述多个第2特征点之中选择3个第2特征点,并获取使选择出的该3个第2特征点的坐标与选择出的该3个第1特征点的坐标相一致的变换参数,其中,该3个第2特征点构成与以选择出的该3个第1特征点为3个顶点的三角形全等的三角形的3个顶点;利用获取到的所述变换参数,将所述合成三维模型的坐标变换成所述被合成三维模型的坐标系的坐标;和将坐标变换后的所述合成三维模型与所述被合成三维模型进行合成。
5.一种三维建模方法,其包括下述步骤:获取通过使照相机移动而在不同位置处拍摄被摄体从而得到的第1图像和第2图像;从所述第1图像上提取多个第1特征点,并且提取所述第2图像上的与提取出的多个第1特征点对应的多个第2特征点;基于提取出的所述第1特征点和第2特征点,获取表示拍摄所述第1图像时与拍摄所述第2图像时的照相机的位置关系的变换参数;根据基于所述变换参数而获取的与所述照相机之间的距离,选择在提取出的所述第1特征点及与该第1特征点对应的第2特征点之中的、与拍摄时的所述照相机之间的距离近的第1特征点和第2特征点的组合;基于选择出的所述第1特征点和第2特征点的组合,重新获取表示拍摄所述第1图像时和拍摄所述第2图像时的所述照相机的位置关系的变换参数;基于重新获取到的所述变换参数,获取所提取出的所述多个第1特征点及第2特征点的三维信息;和基于获取到的所述多个第1特征点及第2特征点的三维信息创建三维模型。本申请主张以2011年4月6日提出的日本专利申请特愿2011-084881号为基础的优先权,并将该基础申请的所有内容援引于此。
技术领域本发明涉及用于对被摄体适当三维建模的三维建模装置及方法。
背景技术以往,公知一种下述技术:利用具备右眼用摄像部和左眼用摄像部的立体照相机拍摄美术品等被摄体,基于拍摄得到的右眼用图像和左眼用图像(立体图像)创建被摄体的三维模型。这种技术例如被公开在发明专利第2953154号公报及“数字图像处理”(佐藤洋一著,CG-ARTS协会出版)。另外,公知一种下述技术:根据改变摄像位置而拍摄到的多个立体图像来创建多个三维模型,并通过合成所创建的多个三维模型来创建精度更高的三维模型。此外,公知一种下述技术:使单眼照相机按照在移动前后为平行立体的方式进行移动,并且利用在移动前后由单眼照相机拍摄到的2个图像,生成拍摄到的对象物的三维图像。
发明内容本发明的第1观点涉及一种三维建模装置,其具备:图像获取单元,其获取由立体照相机拍摄到的多个图像组;三维模型生成单元,其基于获取到的所述多个图像组中的每一个图像组,生成被摄体的多个三维模型;三维模型选择单元,其从生成的所述多个三维模型中选择被合成三维模型和与该被合成三维模型进行合成的合成三维模型;特征点提取单元,其从选择出的所述被合成三维模型中提取多个第1特征点,并且从选择出的所述合成三维模型中提取多个第2特征点;特征点选择单元,其分别选择在提取出的所述多个第1特征点和第2特征点之中的与所述立体照相机之间的距离近的特征点;变换参数获取单元,其基于选择出的所述第1特征点和第2特征点来获取变换参数,该变换参数用于将该合成三维模型的坐标变换成该被合成三维模型的坐标系的坐标;坐标变换单元,其利用获取到的所述变换参数,将所述合成三维模型的坐标变换成所述被合成三维模型的坐标系的坐标;和合成单元,其将坐标变换后的所述合成三维模型与所述被合成三维模型进行合成。本发明的第2观点涉及一种三维建模装置,其具备:图像获取单元,其获取通过使照相机移动而在不同位置处拍摄被摄体从而得到的第1图像和第2图像;特征点提取单元,其从所述第1图像上提取多个第1特征点,并且提取所述第2图像上的与提取出的多个第1特征点对应的多个第2特征点;特征点选择单元,其选择在提取出的所述第1特征点及与该第1特征点对应的第2特征点之中的、与拍摄时的所述照相机之间的距离近的第1特征点和第2特征点的组合;变换参数获取单元,其基于选择出的所述第1特征点和第2特征点的组合,获取表示拍摄所述第1图像时和拍摄所述第2图像时的所述照相机的位置关系的变换参数;三维信息获取单元,其基于获取到的所述变换参数,获取所述特征点提取单元提取出的多个第1特征点及第2特征点的三维信息;和三维模型创建单元,其基于获取到的所述三维信息创建三维模型。本发明的第3观点涉及一种三维建模方法,其包括下述步骤:获取由立体照相机拍摄到的多个图像组;基于获取到的所述多个图像组中的每一个图像组,生成被摄体的多个三维模型;从生成的所述多个三维模型中选择被合成三维模型和与该被合成三维模型进行合成的合成三维模型;从选择出的所述被合成三维模型中提取多个第1特征点,并且从选择出的所述合成三维模型中提取多个第2特征点;分别选择在提取出的所述多个第1特征点和第2特征点之中的与所述立体照相机之间的距离近的特征点;基于选择出的所述第1特征点和第2特征点来获取变换参数,该变换参数用于将该合成三维模型的坐标变换成该被合成三维模型的坐标系的坐标;利用获取到的所述变换参数,将所述合成三维模型的坐标变换成所述被合成三维模型的坐标系的坐标;和将坐标变换后的所述合成三维模型与所述被合成三维模型进行合成。本发明的第4观点涉及一种三维建模方法,其包括下述步骤:获取通过使照相机移动而在不同位置处拍摄被摄体从而得到的第1图像和第2图像;从所述第1图像上提取多个第1特征点,并且提取所述第2图像上的与提取出的多个第1特征点对应的多个第2特征点;选择在提取出的所述第1特征点及与该第1特征点对应的第2特征点之中的、与拍摄时的所述照相机之间的距离近的第1特征点和第2特征点的组合;基于选择出的所述第1特征点和第2特征点的组合,获取表示拍摄所述第1图像时和拍摄所述第2图像时的所述照相机的位置关系的变换参数;基于获取到的所述变换参数,获取所提取出的所述多个第1特征点及第2特征点的三维信息;和基于获取到的所述三维信息创建三维模型。
附图说明结合以下附图考虑以下的详细描述,可得到对本申请的更深刻的理解。图1A是表示第1实施方式涉及的立体照相机的前面的样态的图。图1B是表示第1实施方式涉及的立体照相机的背面的样态的图。图2是表示第1实施方式涉及的立体照相机的构成的图。图3是表示第1实施方式涉及的立体照相机的主要部分的构成的图。图4是表示第1实施方式涉及的立体照相机执行的三维建模处理的流程图。图5是表示图4所示的三维模型生成处理的流程图。图6是表示图4所示的照相机位置推定处理的流程图。图7是表示图6所示的特征点选择处理的流程图。图8是表示第1摄像部和第2摄像部中的透视投影模型的图。图9是表示图6所示的坐标变换参数获取处理的流程图。图10是表示图4所示的三维模型合成处理的流程图。图11是表示第2实施方式涉及的立体照相机的构成的图。图12是表示第2实施方式涉及的立体照相机执行的三维建模处理的流程图。
具体实施方式以下,参照附图,对本发明的各实施方式进行详细说明。在本实施方式中,表示将本发明应用于数字式立体照相机的例子。其中,本发明并不是根据下述的实施方式及附图进行限定的。另外,在不变更本发明宗旨的范围内,能够对下述的各实施方式及附图加以变更。此外,对图中的相同或相应部分赋予相同符号。(第1实施方式)首先,对第1实施方式进行说明。图1A、图1B是第1实施方式涉及的立体照相机1的外观图。如图1A所示,在该立体照相机1的前面设置有镜头111A和镜头111B,在该立体照相机1的上面设置有快门按钮331。镜头111A和镜头111B,在以快门按钮331朝上的方向使立体照相机1水平的情况下,按照各自的中心位置在水平方向处于同一线上的方式,隔开规定间隔配置。快门按钮331是用于接受来自用户的快门动作指示的按钮。如图1B所示,在立体照相机1的背面设置有显示部310、操作按键332和电源按键333。显示部310例如由液晶显示装置等构成,作为用于显示操作立体照相机1所需的各种画面或摄影时的实时取景图像、摄像图像等的电子取景器发挥功能。操作按键332包括十字按键和决定按键等,接受模式切换和显示切换等来自用户的各种操作。电源按键333是用于从用户接受立体照相机1的电源接通/断开的按钮。图2是表示立体照相机1的电气构成的框图。如图2所示,立体照相机1具备:第1摄像部100A、第2摄像部100B、数据处理部200和接口部300。其中,在附图中将接口部适当地标记为I/F部。第1摄像部100A及第2摄像部100B是分别起到拍摄被摄体的功能的部分。立体照相机1是所谓的复眼照相机,由此虽然采用了具有2个摄像部的构成,但是也可采用第1摄像部100A和第2摄像部100B相同的构成。以下,对与第1摄像部100A的相应的构成,在参照符号的末尾附上“A”,对与第2摄像部100B的相应的构成,在参照符号的末尾附上“B”。如图2所示,第1摄像部100A(第2摄像部100B)由光学装置110A(110B)及图像传感器部120A(120B)等构成。光学装置110A(110B)例如包括透镜、光圈机构、快门机构等,进行摄像所涉及的光学动作。即、根据光学装置110A(110B)的动作进行入射光的聚光,并且进行焦点距离、光圈、快门速度等与视角、焦点、曝光等相关的光学要素的调整。其中,光学装置110A(110B)中包含的快门机构是所谓的机械式快门。也可在仅由图像传感器的动作进行快门动作的情况下,在光学装置110A(110B)中不包括快门机构。另外,光学装置110A(110B)在后述的控制部210的控制下动作。图像传感器部120A(120B)生成与由光学装置110A(110B)聚光的入射光相应的电信号。图像传感器部120A(120B)例如由CCD(Chargexa0Coupledxa0Device)或CMOS(Complementallyxa0me
talxa0Oxidexa0Semiconductor)等图像传感器构成,通过进行光电变换来生成与接收到的光的强度相应的电信号,并将生成的电信号输出至数据处理部200。其中,如上述,第1摄像部100A和第2摄像部100B为相同构成。更详细而言,透镜的焦点距离f或F值、光圈机构的光圈范围、图像传感器的尺寸或像素数、排列、像素面积等各规格完全相同。在使第1摄像部100A和第2摄像部100B同时动作的情况下,虽然对同一被摄体拍摄2个图像(配对图像),但是它们的光轴位置在横向方向是不同的。数据处理部200处理通过第1摄像部100A及第2摄像部100B的摄像动作而生成的电信号,生成表示摄像图像的数字数据,并且对摄像图像进行图像处理等。数据处理部200由控制部210、图像处理部220、图像存储器230、图像输出部240、存储部250、外部存储部260等构成。控制部210例如由CPU(Centralxa0Processingxa0Unit)等的处理器及RAM(Randomxa0Accessxa0Memory)等的主存储装置等构成,通过执行在存储部250等中保存的程序,来控制立体照相机1的各部。另外,在本实施方式中,通过执行规定的程序,由控制部210实现后述的三维建模处理等所涉及的功能。图像处理部220例如由ADC(Analog-Digitalxa0Converter)、缓冲存储器、图像处理用的处理器(所谓的图像处理引擎)等构成,基于由图像传感器部120A及120B生成的电信号,生成表示摄像图像的数字数据。即、在ADC将从图像传感器部120A(120B)输出的模拟电信号变换成数字信号之后依次保存至缓冲存储器时,图像处理引擎通过对被缓冲的数字数据进行所谓的显影处理等,由此进行画质的调整及数据压缩等。图像存储器230例如由RAM或闪存等的存储装置构成,暂时保存由图像处理部220生成的摄像图像数据、由控制部210处理的图像数据等。图像输出部240例如由生成RGB信号的电路等构成,将在图像存储器230中保存的图像数据变换成RGB信号等之后输出至显示画面(显示部310等)。存储部250例如由ROM(Readxa0Onlyxa0Memory)或闪存等的存储装置构成,保存立体照相机1的动作所需的程序、数据、计数器等。在本实施方式中,设控制部210等执行的动作程序、执行动作程序时所需的参数、运算式等的数据被保存至存储部250。外部存储部260例如由存储卡等可与立体照相机1装卸的存储装置构成,并保存由立体照相机1拍摄到的图像数据、三维模型数据等。接口部300是起到在立体照相机1与用户或者外部装置之间的接口所涉及的功能的处理部,由显示部310、外部接口部320、操作部330等构成。显示部310如上述例如由液晶显示装置等构成,显示输出用户操作立体照相机1所需的各种画面、拍摄时的实时取景图像、摄像图像等。在本实施方式中,基于来自图像输出部240的图像信号(RGB信号)等,进行摄像图像等的显示输出。外部接口部320例如由USB(Universalxa0Serialxa0Bus)连接器和影像输出端子等构成,进行向外部计算机装置的图像数据的输出、向外部监视器装置的摄像图像的显示输出等。操作部330由在立体照相机1的外面上设置的各种按钮等构成,生成与用户进行的操作相应的输入信号之后送至控制部210。在构成操作部330的按钮中,如上述那样包括快门按钮331、操作按键332、电源按键333等。以上,对实现本发明所需的立体照相机1的构成进行了说明,但是立体照相机1除此之外还具备用于实现一般的立体照相机的功能的构成。在此,参照图3,说明立体照相机1的动作之中的三维建模涉及的动作。图3是表示立体照相机1的主要部分的构成、即用于实现三维建模涉及的动作的构成的框图。如图3所示,立体照相机1具备:图像获取部11、三维模型生成部12、三维模型选择部13、特征点提取部14、特征点选择部15、坐标变换参数获取部16、坐标变换部17和三维模型合成部18。这些要素例如由控制部210构成。图像获取部11利用通过一次拍摄来获取一组图像的立体照相机1,获取通过由不同角度多次拍摄被摄体而得到的多个图像组。三维模型生成部12基于获取到的多个图像组中的每一个图像组,生成被摄体的多个三维模型。三维模型选择部13从生成的多个三维模型中选择被合成三维模型(第1三维模型)和与该被合成三维模型进行合成的合成三维模型(第2三维模型)。特征点提取部14从选择出的被合成三维模型中提取多个第1特征点,并且从选择出的合成三维模型中提取多个第2特征点。特征点选择部15从提取出的多个第1特征点和第2特征点中,优先选择与立体照相机1之间的距离近的特征点。坐标变换参数获取部16基于选择出的多个第1特征点和多个第2特征点,获取用于将该合成三维模型的坐标变换成该被合成三维模型的坐标系的坐标的坐标变换参数。坐标变换部17利用获取到的坐标变换参数,将合成三维模型的坐标变换成被合成三维模型的坐标系的坐标。三维模型合成部18将变换后的合成三维模型与该被合成三维模型进行合成。接着,利用图4所示的流程图,说明立体照相机1执行的三维建模处理。立体照相机1接受操作按键332等用户操作的结果,在动作模型被设定为三维建模模式时,执行图4所示的三维建模处理。在本实施方式中,在快门按钮331被按压的期间,反复执行被摄体的拍摄、三维模型的生成、生成的三维模型的合成、合成后的三维模型的预览显示等。在此,将由最初拍摄得到的三维模型、即成为合成的基础的三维模型称为被合成三维模型(firstxa03Dxa0model)。另外,将通过2次以后的拍摄得到的三维模型、即与被合成三维模型进行合成的三维模型称为合成三维模型(secondxa03Dxa0model)。之后,在三维建模处理中,依次生成将拍摄次数数量的三维模型进行合成而得到的三维模型。其中,设从按每次拍摄而不同的角度拍摄被摄体。首先,控制部210判别快门按钮331是否被按压(步骤S101)。若判别出快门按钮331未被按压(步骤S101:否),则控制部210再次执行步骤S101的处理。另一方面,若判别出快门按钮331被按压(步骤S101:是),则控制部210将摄像次数计数器N初始化为1(步骤S102)。其中,摄像次数计数器N例如被存储至存储部250。接着,控制部210控制第1摄像部100A、第2摄像部100B及图像处理部220等,拍摄被摄体(步骤S103)。若通过控制部210拍摄被摄体,则得到2枚平行同位图像(配对图像)。获取到的配对图像例如被存储至图像存储器230。其中,在配对图像中,将通过第1摄像部100A的摄像而得到的图像设为图像A,将通过第2摄像部100B的摄像而得到的图像设为图像B。接着,控制部210基于在图像存储器230中存储的配对图像,执行三维模型生成处理(步骤S104)。在此,参照图5所示的流程图,说明三维模型生成处理。其中,三维模型生成处理是基于一组的配对图像生成三维模型的处理。即、能够将三维模型生成处理认为是生成从一个照相机位置处看到的三维模型的处理。首先,控制部210提取特征点的候补(步骤S201)。例如,控制部210对图像A进行相角(corner)检测。在相角检测中,对各点(像素)例如计算Harris法的相角特征量。之后,将计算出的相角特征量为规定阈值以上、且在以该点为中心的规定半径的区域内成为最大的点(像素),选择为相角点。因此,将被摄体的前端等相对于其他点而言具有特征的点提取为特征点。接着,控制部210执行立体匹配,从图像B中搜索与图像A的特征点对应的点(对应点)(步骤S202)。具体而言,控制部210根据模板匹配对图像B的各点(像素)计算类似度。之后,将类似度为规定阈值以上且最大的点(差异度为规定阈值以下且最小的点)作为对应点。模板匹配例如可利用残差绝对值和(SAD)、残差平方和(SSD)、标准化相关(NCC或ZNCC)、方向符号相关等各种已知方法。接着,控制部210根据在步骤S202中发现的对应点的视差信息、第1摄像部100A及第2摄像部100B的视角、基线长等,计算特征点的三维位置信息(步骤S203)。视差信息是指,对应点在图像A中的位置和在图像B中的位置之差的信息。计算出的特征点的三维位置信息例如被存储至存储部250。接着,控制部210基于在步骤S203中计算出的特征点的三维位置信息,执行德劳内三角剖分(Delaunayxa0triangulation),并执行多边形化(步骤S204)。生成的多边形信息(三维模型)例如被存储至存储部250。当完成步骤S204的处理时,控制部210结束三维模型生成处理。其中,若特征点的数量少,则被摄体的形状信息缺损,难以得到如实表现被摄体的如实三维模型。另一方面,为了得到更多的特征点,若放宽提取特征点的候补的条件或立体匹配的条件,则不恰当的点会包括在特征点的候补中,或者在立体匹配中产生误对应。这种情况下,位置精度会下降,建模精度会变差。为此,为了既能防止建模精度的变差,又能得到如实表现被摄体的如实三维模型,需要提取恰当数量的特征点。另外,三维模型(三维信息)例如利用以下的3个式子根据配对图像而求出。从配对图像中获取三维信息的方法的详细内容,例如被公开在数字图像处理(2006年3月1日发行,CG-ARTS协会出版)中。X=(b*u)/(u-u’)Y=(b*v)/(u-u’)Z=(b*f)/(u-u’)其中,b是光学装置110A与110B之间的距离,被称为基线长。(u,v)表示由光学装置110A拍摄到的被摄体的图像上的坐标,(u’,v’)表示由光学装置110B拍摄到的被摄体的图像上的坐标。上述3个式子中的(u-u’)是在由光学装置110A和光学装置110B拍摄相同被摄体时得到的2个图像上的被摄体的坐标之差,被称为视差。f表示光学装置110A的焦点距离。如上述已经说明过的那样,光学装置110A与110B采用相同构成,焦点距离f也相等。返回图4,若三维模型生成处理(步骤S104)结束,则控制部210判别摄像次数计数器N是否为1(步骤S105)。在此,摄像次数计数器N为1是指,最初拍摄的刚刚之后。若判别出摄像次数计数器N为1(步骤S105:是),则控制部210将由步骤S104的处理生成的三维模型设定成被合成三维模型(步骤S106)。另一方面,若判别出摄像次数计数器N不为1、即不是最初拍摄的刚刚之后(步骤S105:否),则控制部210执行照相机位置推定处理(步骤S107)。控制部210将当前循环的步骤S104中新得到的三维模型设定成合成三维模型。在此,参照图6的流程图,说明照相机位置推定处理的详细内容。其中,在照相机位置推定处理中,求出本次拍摄时的立体照相机1的位置相对于最初拍摄时的立体照相机1的位置的相对位置。其中,求出该相对位置与求出坐标变换参数是同义,该坐标变换参数用于将由本次拍摄得到的三维模型的坐标变换成由最初拍摄得到的三维模型的坐标系的坐标。首先,控制部210执行特征点选择处理,该特征点选择处理从被合成三维模型和合成三维模型的双方选择用于计算照相机位置(坐标变换参数)的三维空间上的特征点(步骤S301)。在此,参照图7的流程图,说明特征点选择处理。首先,控制部210从被合成三维模型和合成三维模型的双方获取三维空间上的特征点(步骤S401)。例如,控制部210获取被合成三维模型(或合成三维模型)的特征点之中的相角强度高且立体匹配的一致性高的点。或者,也可控制部210在配对图像之间考虑外极线约束(epipolarxa0constraint)的基础上,通过执行基于SURF(Speeded-Upxa0Robustxa0Features)特征量的匹配来提取特征点。或者,也可在通过前述的三维模型创建处理(图5)创建被合成三维模型(或合成三维模型)时,从被合成三维模型(或合成三维模型)获取在步骤S201中提取出的特征点的候补。接着,控制部210基于与立体照相机1之间的距离,将从被合成三维模型获取出的各特征点分类(聚类)成2个集合(聚类群)(步骤S402)。图8示出第1摄像部100A和第2摄像部100B中的透视投影模型。在该图中,特征点和立体照相机1之间的距离表示为:采用以第1摄像部100A的透镜主要点、即C1为原点的坐标时的Z轴方向的坐标值。其中,聚类方法例如可以采用判别分析法即可。判别分析法是按照2个聚类群之间的方差最大的方式进行聚类的方法。这样,通过基于与立体照相机1之间的距离(Z坐标)进行聚类,由此创建由与接近立体照相机1的被摄体对应的特征点构成的聚类群、和由与远离立体照相机1的背景对应的特征点构成的聚类群。其中,也可利用最短距离法、最长距离法、群平均法等其他方法进行聚类。返回图7,接着,控制部210对合成三维模型也同样地,基于与立体照相机1之间的距离(图8中的Z坐标),将获取到的各特征点候补分类(聚类)成2个集合(聚类群)(步骤S403)。接着,控制部210仅将通过步骤S402和步骤S403的处理分别聚类成的2个聚类群之中的、属于与立体照相机之间的距离近的聚类群的特征点,选择为用于计算后述的照相机位置(坐标变换参数)的特征点(步骤S404)。以上,结束特征点选择处理。通过特征点选择处理,作为在后述的处理中用到的特征点而优先选择与照相机接近的特征点。返回图6,若特征点选择处理(步骤S301)结束,则控制部210从通过该特征点选择处理选择出的被合成三维模型的特征点之中选择3个特征点(步骤S302)。在此,选择出的3个特征点选择的是满足以下所示的(A)及(B)条件的点。(A)条件是以3个特征点为顶点的三角形的面积不过于小,(B)条件是以3个特征点为顶点的三角形不具有极端的锐角。例如,控制部210直到选择满足上述(A)及(B)条件的3个特征点为止,随机地选择3个特征点。其中,是否满足(A)及(B)条件的判别,只要通过将三角形的面积及角度与规定的阈值进行比较而进行即可。接着,控制部210从以在特征点选择处理(步骤S301)中选择出的合成三维模型的特征点为3个顶点的三角形之中,搜索与以在步骤S302中选择出的3个特征点为顶点的三角形全等的全等三角形(步骤S303)。例如,在3边的长度大致相等的情况下,判别为2个三角形全等。步骤S303的处理也能认为是下述处理:在合成三维模型的特征点之中,搜索认为是与在步骤S302中从被合成三维模型中选择出的3个特征点对应的3个特征点。此外,也可控制部210在特征点及其周边的颜色信息、或者SURF特征量等中预先缩减三角形的候补,由此使得搜索高速化。表示被搜索到的三角形的信息(典型为表示构成该三角形的顶点的3个特征点的三维空间上的坐标的信息),例如被存储至存储部250。在全等的三角形有多个的情况下,表示所有三角形的信息被存储至存储部250。接着,控制部210判别在步骤S303的搜索中是否搜索到至少一个全等的三角形(步骤S304)。其中,在搜索到的全等的三角形过多的情况下,也可视为未搜索到全等的三角形。若判别出搜索到至少一个全等的三角形(步骤S304:是),则控制部210选择一个全等的三角形(步骤S305)。另一方面,若判别出一个全等的三角形也未搜索到(步骤S304:否),则控制部210将处理返回到步骤S302。若完成步骤S305的处理,则控制部210执行坐标变换参数获取处理(步骤S306)。参照图9所示的流程图,详细说明坐标变换参数获取处理。其中,坐标变换参数获取处理是获取坐标变换参数的处理,该坐标变换参数用于将合成三维模型的坐标变换成被合成三维模型的坐标系的坐标。此外,坐标变换参数获取处理是按照在步骤S302中选择出的3个特征点和在步骤S303中选择出的全等的三角形的每个组合执行的。在此,坐标变换参数是相对于在式(1)及(2)中给予的对应点配对(特征点配对、顶点配对)而言满足式(3)的旋转矩阵R和移动向量t。式(1)及(2)中的p和p’具有从各自的照相机视线观看到的三维空间上的坐标。其中,N是对应点配对的配对数。
p i = x i y i z i ]]>(i=1,2,...,N)xa0xa0xa0xa0(1)
p ′ i = x ′ i y ′ i z ′ i ]]>(i=1,2,...,N)xa0xa0xa0xa0(2)p
i=Rxa0p′
i+txa0xa0xa0xa0(3)为了求出坐标变换参数,首先控制部210如式(4)及(5)所示那样定对应点配对(步骤S501)。式(4)及(5)中的p1~pN是在被合成三维模型中由步骤S302选择出的特征点,p’1~p’N是在合成三维模型中由步骤S303选择出的特征点。而且,p1和p’1、p2和p’2、......、pN和p’N分别是所对应的特征点的坐标。其中,c1和c2是所对应的列向量为对应点的坐标的矩阵。难以根据该矩阵直接求出旋转矩阵R和移动向量t。然而,由于p和p’的分布大致相等,所以若将对应点的质心(centroid(s))合起来之后进行旋转,则能够叠加各对应点。利用此,求出旋转矩阵R和移动向量t。c1=[p
1xa0p
2...p
N]xa0xa0xa0xa0(4)c2=[p′
1xa0p′
2...p′
N]xa0xa0xa0xa0(5)即、控制部210利用式(6)及(7),求出特征点的质心t1及质心t2(步骤S502)。
t 1 = 1 N Σ i = 1 N p i - - - ( 6 ) ]]> t 2 = 1 N Σ i = 1 N p i ′ - - - ( 7 ) ]]>其次,控制部210利用式(8)及(9),求出特征点的分布(与质心的相对位置)、即分布d1及d2(步骤S503)。在此,如上述那样,在分布d1与分布d2之间存在式(10)的关系。d1=[(p
1-t1)(p
2-t1)...(p
N-t1)]xa0xa0xa0xa0(8)d2=[(p′
1-t2)(p′
2-t2)...(p′
N-t2)]xa0xa0xa0xa0(9)d1=Rxa0d2xa0xa0xa0xa0(10)其次,控制部210利用式(11)及(12),执行分布d1及d2的奇异值分解(singularxa0valuexa0decomposition)(步骤S504)。奇异值是按降序排列的。在此,记号*表示复共轭转置(Complexxa0Conjugatexa0Transpose)。
d 1 = U 1 S 1 V 1 * - - - ( 11 ) ]]> d 2 = U 2 S 2 V 2 * - - - ( 12 ) ]]>此外,在此控制部210判别在步骤S504中进行了奇异值分解的分布d1及d2是否为二维以上(即、是否为平面或立体)。在d1所包含的向量(p1-t1)、(p2-t1)、......、(pN-t1)和d2所包含的向量(p’1-t2)、(p’2-t2)、......、(p’N-t2)这两方向量不在直线上的情况下,判别出为二维以上。若不是二维以上,则无法求出旋转矩阵R,因而作为错误而结束了与当前的c1及c2相应的坐标变换参数获取处理。奇异值对应于分布的扩展情况。因此,只要利用最大的奇异值和除此之外的奇异值之间的比率、奇异值的大小来判定分布是否为二维以上即可。例如,在第2大的奇异值为规定值以上、且与最大的奇异值之间的比率为规定范围内的情况下,判定出分布为二维以上。接着,控制部210求出关联度K(步骤S505)。根据式(10)~(12),旋转矩阵R能够如式(13)那样表示。在此,若如式(14)那样定义关联度K,则旋转矩阵R如式(15)所示。
R = U 1 S 1 V 1 * V 2 S 2 - 1 U 2 * - - - ( 13 ) ]]> K = S 1 V 1 * V 2 S 2 - 1 - - - ( 14 ) ]]> R = U 1 K U 2 * - - - ( 15 ) ]]>其中,矩阵U1及U2分别表示分布d1及d2的固有向量。U1及U2通过关联度K关联起来。关联度K为3×3的矩阵,在该要素所关联的U1及U2示出的固有向量彼此之间相对应的情况下该要素为1或-1,否则为0。可是,因为在步骤S305中选择了全等的三角形,所以分布d1及d2大致相等。因此,视为奇异值也相等。即、S1和S2也相等。实际上,因为分布d1和分布d2包括误差,所以要四舍五入误差。鉴于此,用式(16)求出关联度K的各要素(k
ijxa0i,j=1~3)。即、控制部210在步骤S505中利用式(16)计算关联度K。其中,r
iV
1*表示矩阵V
1*的第i行,c
jV
2表示矩阵V
2的第j列。另外,round(x)是返回与x最接近的整数的函数。
k ij = round { r i V 1 * · c j V 2 } - - - ( 16 ) ]]>接着,控制部210计算旋转矩阵R(步骤S506)。具体而言,控制部210基于式(15)和式(16)计算旋转矩阵R。表示通过计算得到的旋转矩阵R的信息,例如被存储至存储部250。接着,控制部210计算移动向量t(步骤S507),坐标变换参数获取处理结束。相对于此时计算的旋转矩阵R,p和p’满足式(17)的关系。若将式(17)变形,则如式(18)所示。根据式(18)与式(3)的对应关系,移动向量t如式(19)所示。(p
i-t1)=R(p′
i-t2)xa0xa0xa0xa0(17)p
i=Rp′
i+(t1-Rxa0t2)xa0xa0xa0xa0(18)t=t1-Rxa0t2xa0xa0xa0xa0(19)此外,在分布d1及d2为二维的情况下(即、分布为平面的情况下),存在关联度K的一部分被破坏的可能性。具体而言,关联度K的第3行3列的要素为1或-1中的一个,在为二维的情况下在式(16)中未分配准确符号的情形存在。因此,控制部210根据旋转矩阵R的外积关系的确认、利用了式(10)的验算等处理来验证旋转矩阵,并在有问题的情况下执行修正关联度的处理。其中,在此提及的外积关系的确认是指,旋转矩阵R的列向量(和行向量)满足坐标系的制约的确认。例如,在右手坐标系中,在第1列的向量和第2列的向量的外积等于第3列的向量的情况下,可以说满足坐标系的制约。并且,验证旋转矩阵R的结果,若有问题,则控制部210修正关联度K。具体而言,在此,将关联度K的第3行3列的要素的符号反转。之后,利用修正后的K重新计算旋转矩阵R,并利用重新计算后的旋转矩阵来计算移动向量t。返回图6,若坐标变换参数获取处理(步骤S306)结束,则控制部210利用获取到的坐标变换参数来适应坐标系(步骤S307)。具体而言,利用式(3)将合成三维模型的特征点的坐标变换成被合成三维模型的坐标系的坐标。接着,控制部210存储特征点配对(步骤S308)。在此,特征点配对由被合成三维模型的特征点、和坐标变换后的合成三维模型的特征点之中的与该被合成三维模型的特征点之间的距离为规定值以下且距离最近的特征点构成。其中,特征点配对的数量越多,则推定为步骤S302中的3个特征点的选择、以及步骤S305中的全等的三角形的选择越恰当。此外,特征点配对与坐标变换参数的获取条件(步骤S302中的3个特征点的选择、以及步骤S305中的全等的三角形的选择)一起存储至存储部250等即可。接着,控制部210判别在步骤S303中搜索到的所有全等的三角形是否在步骤S305中被选择出(步骤S309)。若判别出未选择其中任一个全等的三角形(步骤S309:否),则控制部210将处理返回到步骤S305。另一方面,若判别出所有全等的三角形被选择的情况下(步骤S309:是),控制部210判别是否满足结束条件(步骤S310)。在本实施方式中,设结束条件为:关于规定个数以上的条件,满足获取了坐标变换参数、或结束了规定次数的循环中的其中一个条件。若判别出未满足结束条件(步骤S310:否),则控制部210将处理返回到步骤S302。另一方面,若判别出满足了结束条件(步骤S310:是),则控制部210确定最佳的坐标变换参数(步骤S311)。具体而言,将获取到特征点配对最多的坐标变换参数(旋转矩阵R和移动向量t)设为最佳的坐标变换参数。换言之,在步骤S302中的3个特征点的选择、以及步骤S305中的全等的三角形的选择为恰当的循环中计算出的坐标参数,被确定为最佳。此外,在步骤S311中,也可以特征点配对的平均距离最小的坐标变换参数被确定为最佳。在步骤S311中,进一步利用由确定出的最佳的坐标变换参数获取到的多个特征点配对(最佳配对),重新计算旋转矩阵R和移动向量t。即、将多个最佳配对作为对应点配对,执行图9所示的坐标变换参数获取处理,重新计算旋转矩阵R和移动向量t。将在此重新计算出的旋转矩阵R和移动向量t作为在以下处理中用到的坐标变换参数。然后,控制部210结束照相机位置推定处理。返回图4,若照相机位置推定处理(步骤S107)结束,则控制部210执行三维模型合成处理(步骤S108)。参照图10的流程图,说明三维模型合成处理。首先,控制部210利用在照相机位置推定处理(步骤S107)中确定出的坐标变换参数,重叠所有三维模型(步骤S601)。例如,在第2次拍摄的情况下,在基于第1次拍摄到的配对图像而生成的被合成三维模型上重叠基于第2次拍摄到的配对图像而生成的坐标变换后的合成三维模型。另外,在第3次拍摄的情况下,在基于第1次拍摄到的配对图像而生成的被合成三维模型上重叠基于第2次拍摄到的配对图像而生成的坐标变换后的合成三维模型,进而还重叠基于第3次拍摄到的配对图像而生成的坐标变换后的合成三维模型。接着,控制部210根据各特征点的重叠程度求出各特征点的可靠性,去除可靠性低的特征点(步骤S602)。例如,根据相对于某个三维模型的关注特征点的、其他三维模型的最接近的特征点分布,计算该关注特征点的马氏距离(Mahalanobisxa0distance),在该马氏距离为规定值以上的情况下,判别为该关注特征点的可靠性低。此外,也可,距关注特征点的距离为规定值以上的特征点不包括在最接近的特征点中。另外,也可在最接近的特征点的数量少的情况下,视为可靠性低。此外,设实际去除特征点的处理在针对所有特征点判别是否去除之后再执行。接着,控制部210统一视为同一的特征点(步骤S603)。例如,设规定距离以内的特征点全部属于表示同一特征点的组来对待,这些特征点的质心被作为新的特征点。接着,控制部210重构多边形网格(步骤S604)。即、以在步骤S603中求出的新特征点作为顶点,生成多边形(三维模型)。以上,结束了三维模型合成处理。此外,表示在三维模型生成处理(步骤S104)中生成的三维模型的信息(典型为特征点的坐标信息),在快门按钮331被按压的期间,保持整个拍摄部分(整个视线部分),基本上不变更。即、三维模型合成处理(步骤S108)是基于整个拍摄部分的三维模型另行创建显示用或保存用的高精细的三维模型的处理。返回图4,若三维模型合成处理(步骤S108)结束,则控制部210将摄像次数计数器N的值增加1个(步骤S109)。接着,控制部210显示合成后的三维模型(步骤S110)。具体而言,控制部210将在三维模型合成处理(步骤S108)中获取到的三维模型显示于显示部310。由此,用户能够获知在到目前为止的拍摄中生成了哪种程度的准确的三维模型。接着,控制部210判别是否离开了快门按钮331(步骤S111)。若判别出离开了快门按钮331(步骤S111:是),则控制部210将合成后的三维模型保存至外部存储部260等之后(步骤S112),完成三维建模处理。另一方面,若判别出未离开快门按钮331(步骤S111:否),则控制部210将处理返回到步骤S103。这样,因为根据第1实施方式涉及的立体照相机1合成多个三维模型,所以既能抑制形状信息的缺损,又能进行高精度的三维建模。另外,因为根据第1实施方式涉及的立体照相机1,去除被认为可靠性低的特征点,进而视为同一的特征点被统一,来进行三维建模,故可进行恰当的三维建模。而且,由于本实施方式涉及的立体照相机1不是同时从各种角度拍摄被摄体的构成,因而可实现小型化。另外,用户通过观看在显示部310中显示的多边形,能够获知生成了哪种程度的准确的三维模型。因此,用户能够判断是否充分进行了三维建模,或者为了充分进行三维建模需要从哪种角度进行拍摄等。而且,根据本实施方式涉及的立体照相机1,在根据各三维模型的特征点计算照相机位置(坐标变换参数)时,优先利用与立体照相机1近的特征点来进行计算。一般而言,越是接近立体照相机1的点,三维模型的特征点越对应于被摄体上的点,位置精度越高。因此,这样一来,能计算更准确的照相机位置,故可进行更高精度的三维建模。(第2实施方式)在第1实施方式中,利用具有2个摄像部的立体照相机1创建了三维模型。然而,本发明也可以应用于只有1个摄像部的单眼照相机2。参照图11、图12,说明利用单眼照相机2创建三维模型的三维建模处理。图11是表示单眼照相机2的电气构成的框图。在前述的立体照相机1中具备第1摄像部100A和第2摄像部100B共计2个摄像部,与之相对,单眼照相机2仅具备1个摄像部100。摄像部100具备光学装置110和图像传感器部120。其中,由于单眼照相机2的其他构成与立体照相机1相同,所以赋予同一符号,并省略说明。接着,参照图12所示的流程图,说明单眼照相机2执行的三维建模处理。当单眼照相机2根据操作按键332等操作将动作模式设定成三维建模模式时,执行图12所示的三维建模处理。在三维建模处理开始时,首先控制部210控制摄像部100,获取(拍摄)拍摄到被摄体的图像(以下称为第1图像)(步骤S701)。获取到的图像例如被存储至图像存储器230。在步骤S701的处理完成之后,用户使单眼照相机2移动至与拍摄到第1图像的摄影位置不同的摄影位置。之后,在经过了规定时间之后、或者响应于来自用户的规定的指示操作,单眼照相机2的控制部210与步骤S701同样地控制摄像部100,获取(拍摄)拍摄到被摄体的图像(以下称为第2图像)(步骤S702)。获取出的图像例如被存储至图像存储器230。接着,控制部210获取使表示对象物上的相同点的第1图像上的特征点和第2图像上的特征点对应起来的点(对应点)(步骤S703)。具体而言,控制部210对第1图像及第2图像,与实施方式1的三维模型生成处理(图5)的步骤S201同样地,利用哈里斯(Harris)的相角检测法来获取第1图像上的特征点(以下称为第1特征点)和第2图像上的特征点(以下称为第2特征点)。其次,在第1特征点与第2特征点之间,对距特征点为规定距离的图像区域(特征点附近图像)进行模板对照,并且使通过模板对照而计算出的对照度为规定的阈值以上且为最高值的第1特征点和第2特征点对应起来,分别作为对应点。或者,也可通过执行SURF特征量的匹配来取对应点。接着,控制部210根据获取到的特征点的对应,获取由下式(20)示出的基础矩阵E(步骤S704)。其中,t是移动向量,R是旋转矩阵,都是用于将第2图像的图像坐标系变换成第1图像的图像坐标系的坐标变换参数。另外,记号×表示外积。E=t×Rxa0xa0xa0xa0(20)具体而言,控制部210根据摄像部100的透镜驱动状态,计算拍摄第1图像时的摄像部100的主要点与焦点之间的焦点距离。然后,控制部210利用各特征点的图像位置和焦点距离,采用8点算法、7点算法或5点算法来计算基础矩阵E。接着,控制部210将基础矩阵E进行分解,获取移动向量t和旋转矩阵R(步骤S705)。具体而言,控制部210将矩阵“trans(E)·E”的最小固有值的固有向量作为移动向量t计算。其中,trans是表示矩阵的转置的记号。接着,控制部210如以下的式(21)所示那样,利用最小二乘法等计算旋转矩阵R,以使成为计算对象的旋转矩阵R和已经计算出的移动向量t的外积与已经计算出的基础矩阵E之间的误差最小。此外,在式(21)中,记号∑表示矩阵的全部要素之和,记号
![]()
ntent="drawing" img-format="tif" inline="yes" orientation="portrait" wi="152"/>表示使左边的值最小化。
Σ ( t × R - E ) 2 ⇒ min - - - ( 21 ) ]]>接着,控制部210获取第1图像、第2图像各个图像向照相机坐标系射影的射影矩阵(照相机射影参数)(步骤S706)。若将第1图像向照相机坐标系射影的射影矩阵(照相机射影参数)设为P,则P作为表示照相机内部的状态的照相机内部参数A和表示照相机的位置的照相机外部参数[R|t]之间的内积,如式(22)所示那样表示。另外,照相机内部参数A由照相机的焦点距离f、图像上的光轴所对应的位置(u0,v0)等,如式(23)所示那样进行表示。
P = A · R 11 R 12 R 13 t 1 R 21 R 22 R 23 t 2 R 31 R 32 R 33 t 3 - - - ( 22 ) ]]> A = f 0 u 0 0 f v 0 0 0 1 - - - ( 23 ) ]]>在此,为了求出以第1图像的摄像位置为基准的照相机射影参数,移动向量t和旋转矩阵R成为表示不进行坐标变换的向量和矩阵。因此,式(22)如式(24)所示那样表示,通过计算由此能够求出第1图像向照相机坐标系射影的射影矩阵(照相机射影参数)P。
P = A · 1 0 0 0 0 1 0 0 0 0 1 0 - - - ( 24 ) ]]>另外,第2图像向照相机坐标系射影的射影矩阵(照相机射影参数)P’,利用在步骤S705中获取到的移动向量t和旋转矩阵R,能够如式(25)那样求出。其中,记号|表示矩阵的连接的记号。P′=A·[R|t]xa0xa0xa0xa0(25)接着,控制部210利用在步骤S705中获取到的移动向量t和旋转矩阵R、及在步骤S706中获取到的照相机射影参数P、P’,获取各特征点的三维信息(步骤S707)。换言之,该处理是获取以拍摄第1图像时的单眼照相机2的摄像位置为原点的各特征点在世界坐标系中的坐标(X,Y,Z)的处理。例如,将第1图像上的特征点的位置作为(u,v),将与该特征点对应的第2图像上的特征点的位置作为(u’,v’)。这种情况下,各特征点的三维信息(世界坐标系中的坐标(X,Y,Z))满足式(26)、式(27)。因此,可利用最小二乘法等方法,根据式(26)、式(27)求出世界坐标(X,Y,Z)。然后,针对在步骤S703中确定出的所有相对应的特征点的组进行该计算即可。trans(u,v,1)~P·trans(X,Y,Z,1)xa0xa0xa0xa0(26)trans(u′,v′,1)~P′·trans(X,Y,Z,1)xa0xa0xa0xa0(27)其中,记号~表示两边允许常数倍差异的相等的意思。接着,控制部210基于与单眼照相机2之间的距离(世界坐标系中的Z坐标),将由此获取了三维信息的各特征点分类(聚类)成2个集合(聚类群)(步骤S708)。作为聚类方法,例如采用判别分析法即可。接着,控制部210选择构成聚类成的2个聚类群之中的、与单眼照相机2之间的距离近的一个聚类群的特征点(步骤S709)。接着,控制部210仅利用在步骤S709中选择出的特征点,重新求出基础矩阵E(步骤S710),并根据求出的基础矩阵E来求出移动向量t和旋转矩阵R(步骤S711)。之后,根据求出的移动向量t和旋转矩阵R,利用式(25)求出射影矩阵(照相机射影参数)(步骤S712)。其中,步骤S710~步骤S712的处理除了所采用的特征点不同(被挑选)以外,其余与步骤S704~步骤S706的处理实质上相同。接着,控制部210利用在步骤S711中获取到的移动向量t和旋转矩阵R、及在步骤S712中获取到的照相机射影参数P、P’,获取各特征点的三维信息(步骤S713)。其中,在此,并不是针对在步骤S709中选择出的特征点,而是针对在步骤S703中获取到的所有特征点,获取三维信息。接着,控制部210基于在步骤S713中获取到的各特征点的三维信息,执行德劳内三角剖分,来执行多边形化(步骤S714)。生成的多边形信息例如被存储至存储部250。以上,结束了单眼照相机2的三维模型生成处理。这样,根据第2实施方式涉及的单眼照相机2,从在不同位置处拍摄到的各图像获取多个特征点,根据获取到的特征点推定照相机位置,根据推定出的照相机位置计算特征点的三维信息。之后,优先利用获取到的特征点之中的与单眼照相机2近的特征点,重新推定照相机位置,根据重新推定出的照相机位置重新计算特征点的三维信息,根据重新计算出的特征点的三维信息创建三维模型。一般而言,越是接近单眼照相机2的特征点,摄像图像的特征点越对应于被摄体上的点,位置精度越高。因此,这样一来能够计算更准确的照相机位置,可进行更高精度的三维建模。(变形例)此外,本发明并不限定于上述各实施方式,当然在不脱离本发明宗旨的范围内可进行各种变更。例如,在第1实施方式中,在图7所示的特征点选择处理中,在步骤S401中获取特征点,基于与立体照相机1之间的距离将在步骤S402及步骤S403中获取到的特征点聚类成2个聚类群。之后,在步骤S404中将属于与立体照相机1近的一个聚类群的特征点选择为用于三维建模的特征点。然而,也可不聚类,将与立体照相机1之间的距离为规定阈值以内的特征点选择为用于三维建模的特征点。另外,也可对与立体照相机1之间的距离为规定阈值以内的各特征点,应用RANSAC(RANdomxa0SAmplexa0Consensus)法等的鲁棒方法,来决定要选择的特征点。另外,也可从在步骤S401中获取到的特征点之中的、与立体照相机1之间的距离近的点,选择上位规定比例的特征点。另外,也可对在步骤S401中获取到的特征点,选择应用了采用规定评价式的RANSAC法等的鲁棒推定法而推定出的特征点,其中,与立体照相机1之间的距离越近,该规定表达式表示越高的评价值。简而言之,优先从与立体照相机1之间的距离近的特征点,选择特征点即可。另外,在第2实施方式的实施方式中,在图12所示的三维建模处理中,在步骤S708中聚类了特征点。之后,在步骤S709中将与单眼照相机2近的聚类群的特征点选择为用于三维建模的特征点。可是,也可不聚类,将与单眼照相机2之间的距离为规定阈值以内的特征点选择为用于三维建模的特征点。另外,也可对与单眼照相机2之间的距离为规定阈值以内的各特征点应用RANSAC法等的鲁棒方法,来决定要选择的特征点。另外,也可从在步骤S703中获取到的特征点之中的、与单眼照相机2之间的距离近的点,选择上位规定比例的特征点。另外,也可对在步骤S703中获取到的特征点,应用采用规定评价式的RANSAC法等的鲁棒方法,选择特征点,其中,与立体照相机1之间的距离越近,该规定表达式表示越高的评价值。简而言之,优先从与单眼照相机2之间的距离近的特征点,选择特征点即可。另外,也可将现有的立体照相机或单眼照相机等作为本发明涉及的三维建模装置发挥功能。即、通过将上述的控制部210执行过的这种程序应用于现有的立体照相机或单眼照相机等,由该立体照相机或单眼照相机等的CPU等执行该程序,由此能够使该立体照相机或单眼照相机等作为本发明涉及的三维建模装置发挥功能。这种程序的分配方法是任意的,例如既可以保存至CD-ROM(Compactxa0Diskxa0Read-Onlyxa0Memory)、DVD(Digitalxa0Versatilexa0Disk)、MO(Magnetoxa0Opticalxa0Disk)、存储卡等计算机可读取的记录介质中进行分配,也可以经由因特网等通信网络进行分配。这种情况下,在通过OS(操作系统)和应用程序的分担、或者OS与应用程序的协作来实现上述的本发明涉及的功能等时,也可仅将应用程序部分保存至记录介质等。到此说明了本发明的几个实施方式,但是在本发明中包含权利要求书记载的发明及与其等同的发明的范围。